/**
 * 
 */
package com.gragra.sampling.nonproj;
import com.gragra.sampling.PopulationProbabilityAssigner;
import com.gragra.sampling.nonproj.structures.nonprojective.NonProjDepdTree;
/**
 * @author Christoph Teichmann
 * 07.10.2013
 */
public interface ProposalDependencyAssigner extends
		PopulationProbabilityAssigner
{
	/**
	 * 
	 * @param pos
	 * @param head
	 * @param sampleWithApproximation
	 * @param thread
	 * @return
	 */
	double makeProposalLogProb(int pos, int head,NonProjDepdTree tree, int thread);
	/**
	 * 
	 * @param randomWalkSingleRootNonProjDepdTree
	 * @param headCandidate
	 * @param child
	 * @param thread
	 * @return
	 */
	double makeChartProposalProb(NonProjDepdTree tree, int headCandidate, int child, int thread);
}